package com.bai.boot.interceptor;

import lombok.AllArgsConstructor;
import org.springframework.web.servlet.HandlerInterceptor;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * 拦截器
 * 实现接口HandlerInterceptor
 *
 * @author 27471
 * Time : 2022/10/1 17:53
 */

public class LoginInterceptor implements HandlerInterceptor {

    /**
     * 检测全局Session对象中是否有uid数据，如果有则放行，如果没有就重定向
     *
     * @param request  请求对象
     * @param response 响应对象
     * @param handler  处理器(url+Controller:映射)
     * @return 返回值为true表示放行，false表示拦截
     * @throws Exception
     */
    @Override
    public boolean preHandle(HttpServletRequest request,
                             HttpServletResponse response,
                             Object handler) throws Exception {
        //HttpServletRequest对象来获取session对象
        Object uid = request.getSession().getAttribute("uid");
        if (uid == null) {
            //用户没有登录重定向登录页面
            response.sendRedirect("/web/login");
            //结束后续调用
            return false;
        }
        //请求放行
        return true;

    }
}
